آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic تهیه و آموزش نرم افزار دارک بیسیک |
|||
پنج شنبه 12 ارديبهشت 1392برچسب:, :: 22:51 :: نويسنده : ابوالفضل
با استفاده از دستورات این فصل می توانیم نور ایجاد کنیم . می توانیم رنگ آن ها ، جهت پخش ( جهتی که نور به آن سمت تابیده می شود ) و فاصله ای برد نورها ( مقدار فاصله ای که نور باید تا آن فاصله تابش داشته باشد ) و همچنین موقعیت مکانی آن ها را در فضای سه بعدی مشخص کنیم . دستور MAKE LIGHT
با استفاده از این دستور می توانیم از 1 تا 7 نور جدید ایجاد کنیم . مانند دستورالعمل زیر :
MAKE LIGHT LightNumber
طبق این دستورالعمل به جای LightNumber شماره ای بین 1 تا هفت برای نام نورهای جدیدمان قرار می دهیم . یعنی تنها هشت نور می تواند در صحنه وجود داشته باشد . بعلاوه نور شماره ی صفر که نور پیش فرض صحنه است و همیشه وجود دارد . مانند مثال زیر :
Make Light 5
Wait Key
در این مثال نوری با شماره ی 5 ایجاد شد .
دستور DELETE LIGHT
این دستور نور ایجاد شده را از صحنه حذف می کند . مانند مثال زیر :
Make Light 1
Make Light 2
Delete Light 1
Wait Key
در این مثال نور هایی با شماره های 1 و 2 ایجاد و سپس نور شماره ی 1 حذف شد .
نکته : نور شماره ی صفر که نور پیش فرض صحنه است را نمی توانیم حذف کنیم .
دستور HIDE LIGHT
این دستور نور موجود در صحنه را غیر فعال می کند . یعنی با اجرای این دستور ، وجود نور مورد نظر هیچ تاثیری بر روی صحنه نخواهد داشت . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Cone 6,10
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,0
Wait 2000
Hide Light 0
Wait Key
در این مثال نور شماره ی صفر که نور پیش فرض صحنه است ، غیر فعال ( بی تاثیر ) می شود .
دستور SHOW LIGHT
اگر با دستور قبلی (HIDE LIGHT ) نوری را غیر غعال کرده بودیم . با این دستور می توانیم آن نور را دوباره فعال کنیم . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Cone 6,10
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,0
Hide Light 0
Wait 2000
Show Light 0
Wait Key
دستور POSITION LIGHT
با این دستور موقعت مکانی نور مورد نظرمان را در فضای سه بعدی مشخص می کنیم . مانند دستورالعمل زیر :
POSITION LIGHT LightNumber,X,Y,Z
طبق این دستورالعمل به جای LightNumber شماره ی نور مورد نظر و به جای X و Y و Z فاصله ی نور تا محور های X و Y و Z مختصات فضای سه بعدی را قرار می دهیم . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Sphere 6,10 : Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Hide Light 0 : Make Light 1
Sync On : Sync Rate 30
intAngle As Integer = 0
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Position Light 1,X,Y,Z
Control Camera Using Arrowkeys 0,1,1
Sync
Loop
در این مثال نور شماره یک با موقعت مکانی کره ( پا به پای کره ) حرکت می کند .
دستور SET LIGHT RANGE
این دستور مشخص می کند که نور مورد نظرمان تا چه مسافتی را روشن کند ( با چه شدتی پخش شود ) . مانند مثال زیر :
Make Object Sphere 1,10 : Position Object 1,0,-50,100
Make Object Sphere 2,10 : Position Object 2,0,150,150
Make Object Sphere 3,10 : Position Object 3,70,80,150
Make Object Sphere 4,10 : Position Object 4,-30,50,130
Make Object Sphere 5,10 : Position Object 5,10,100,120
Make Object Sphere 6,10 : Ghost Object On 6
Position Object 6,0,20,150
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,40,-50
Hide Light 0 : Make Light 1
Position Light 1,0,20,150
Sync On : Sync Rate 30
intRange As Integer = 0
Do
Inc intRange : If intRange > 1000 Then intRange = 0
Set Light Range 1,intRange
(Text 10,10,"Light Range ="+Str$(intRange
Control Camera Using Arrowkeys 0,1,1
Sync
Loop
دستور COLOR LIGHT
این دستور رنگ نور مورد نظرمان را تعیین می کند . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Sphere 6,10 : Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Hide Light 0 : Make Light 1
(Color Light 1,Rgb(255,0,0
Sync On : Sync Rate 30
intAngle As Integer = 0
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Position Light 1,X,Y,Z
Control Camera Using Arrowkeys 0,1,1
Sync
Loop
نورها در DarkBasic به دو دسته تقسیم می شوند .
1- نور نقطه ای یا همه سویه (POINT LIGHT )
نور نقطه ای نوری است که تمام اطراف خود را نورپردازی می کند . مانند خورشید و یا شمع .
2- نور جهت دار (SPOT LIGHT )
نور جهت دار تنها یک جهت را روشن می کند . مانند چراغ ماشین و یا پروژکتور ها که تنها به یک جهت نورپردازی دارند .
با ایجاد نور جدید توسط دستور Make Light نور از نوع Point Light یعنی نور نقطه ای ایجاد می شدند . مانند خورشید . می توانیم توسط دستورات Set Spot Light و Set Point Light نوع نور ها را عوض کنیم . مانند دستورات زیر :
دستور SET POINT LIGHT
با استفاده از این دستور نور مورد نظرمان را به نور نقطه ای ( Point Light ) تبدیل می کنیم . مانند دستورالعمل زیر :
SET POINT LIGHT LightNumber,X,Y,Z
طبق این دستورالعمل به جای LightNumber شماره ی نور و به جای X و Y و Z مختصات نور را در فضا مشخص می کنیم . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Box 7,400,10,400 : Position Object 7,0,100,0
Make Object Sphere 6,10 : Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Set Point Light 0,0,0,0
(Color Light 0,Rgb(255,255,0
Sync On : Sync Rate 30
intAngle As Integer = 0
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Position Light 0,X,Y,Z
((Text 10,10,"X = "+Str$(Light Position X(0
((Text 10,30,"Y = "+Str$(Light Position Y(0
((Text 10,50,"Z = "+Str$(Light Position Z(0
Rotate Light 0,0,90,0
Control Camera Using Arrowkeys 0,1,1
Sync
Loop
در این مثال نور پیش فرض را به نور نقطه ای تبدیل کردیم . سپس آن را در محیط می گردانیم .
دستور SET NORMALIZATION ON و دستور SET NORMALIZATION OFF
دستور Set Normalization On باعث می شود که نوردهی به اشیاء ، حالت نرمال و نرمی داشته باشد و دستور Set Normalization Off این حالت را خنثی می کند .
دستور SET SPOT LIGHT
این دستور نور مورد نظر را به نور جهت دارد تبدیل می کند . مانند دستورالعمل زیر :
SET SPOT LIGHT LightNumber,InnerAngle,OuterAngle
طبق این دستورالعمل به جای LightNumber شماره ی نور مورد نظر و به جای InnerAngle شعاع داخلی نوری که پخش می شد به شکل مخروط را قرار می دهیم و به جای OuterAngle شعاع خارجی نوری که پخش می شود بصورت تار و به شکل مخروط است ( نیمه شفاف است تا طبیعی به نظر برسد ) را قرار می دهیم . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Box 7,400,10,400 : Position Object 7,0,100,0
Make Object Sphere 6,10 :Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Sync On : Sync Rate 60
intAngle As Integer = 0
hide Light 0
make light 2
set spot light 2,45,90
color light 2,512,100,100
position light 2,0,100,0
Set Normalization On
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Control Camera Using Arrowkeys 0,1,1
rotate light 2,0,intAngle,0
Sync
Loop
دستور POINT LIGHT
با این دستور می توانیم جهت نور را با استفاده از مختصات یک نقطه ی فرضی در فضا مشخص کنیم . مانند دستورالعمل زیر :
POINT LIGHT LightNumber,X,Y,Z
طبق این دستورالعمل به جای LightNumber شماره ی نور مورد نظر و به جای X و Y و Z مختصات یک نقطه ی فرضی در فضا را قرار می دهیم ، تا نور به آن نقطه نگاه کند . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Box 7,400,10,400 : Position Object 7,0,100,0
Make Object Sphere 6,10 :Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Sync On : Sync Rate 60
intAngle As Integer = 0
hide Light 0
make light 2
set spot light 2,45,90
color light 2,512,100,100
position light 2,0,100,0
Set Normalization On
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Control Camera Using Arrowkeys 0,1,1
rotate light 2,0,intAngle,0
Point Light 2,0,0,500
Sync
Loop
دستور ROTATE LIGHT
این دستور نور مورد نظر را حول محور های X و Y و Z خودش می چرخاند . البته تاثیر این دستور فقط برای نورهایی از نوع Spot Light می باشد ، چون نور همه سویه به همه ی اطراف نور پخش می کند و چرخش آن تاثیری بر محیط نخواهد داشت . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Box 7,400,10,400 : Position Object 7,0,100,0
Make Object Sphere 6,10 : Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Sync On : Sync Rate 60
intAngle As Integer = 0
hide Light 0
make light 2
set spot light 2,45,90
color light 2,512,100,100
position light 2,0,100,0
Set Normalization On
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
(X = Object Position X(6
(Y = Object Position Y(6
(Z = Object Position Z(6
Control Camera Using Arrowkeys 0,1,1
rotate light 2,0,intAngle,0
Point Light 2,0,0,500
Sync
Loop
دستور FOG ON
این دستور باعث ایجاد مه در صحنه می شود .
دستور FOG COLOR
با این دستور رنگ مه ایجاد شده در صحنه را مشخص می کنیم .
دستور FOG DISTANCE
این دستور میزان دید دوربین را در مه مشخص می کند ، که کمترین دید دوربین حالتی است که در آن ،Fog Distance برابر صفر است ، که هیچ چیز جز مه دیده نمی شود و بیشترین دید دوربین حالتی است که در آن Fog Distance برابر 5000 باشد ، که همه چیز دیده می شود و مه تاثیر بسیار کمی دارد . مانند مثال زیر :
Make Object Box 1,400,10,400 : Position Object 1,0,-5,0
Make Object Box 2,400,100,10 : Position Object 2,0,50,-200
Make Object Box 3,400,100,10 : Position Object 3,0,50,200
Make Object Box 4,10,100,400 : Position Object 4,-200,50,0
Make Object Box 5,10,100,400 : Position Object 5,200,50,0
Make Object Box 7,400,10,400 : Position Object 7,0,100,0
Make Object Sphere 6,10 : Ghost Object On 6
Load Image "C:\Program Files\Dark Basic Software\Dark Basic Professional\Help\gfx\backdrop.Jpg",1
For I=1 To 6 : TEXTURE OBJECT I,1 : Next I
Position Camera 0,50,-150
Sync On : Sync Rate 60
intAngle As Integer = 0
fog on
fog distance 3500
(fog color rgb(128,128,255
Do
(Inc intAngle : intAngle = WrapValue(intAngle
Position Object 6,Sin(intAngle)*100,70,Cos(intAngle)*100
Control Camera Using Arrowkeys 0,1,1
Sync
Loop
دستور FOG OFF
این دستور باعث حذف مه از صحنه می شود . نظرات شما عزیزان:
موضوعات آخرین مطالب آرشيو وبلاگ پیوندهای روزانه پيوندها
تبادل
لینک هوشمند
نويسندگان |
|||
|